#pragma once

namespace Graphics{
	class SkeletonJoint;
	typedef boost::shared_ptr<SkeletonJoint> SkeletonJointPtr;

	class SkeletonJoint{
	public:
		std::string m_name;
		int m_parent;
		std::vector<unsigned int> m_children;
		bool m_bakedTransform;

		Utility::Math::Matrix<4,4>		m_invBindMatrix,
										m_transformMatrix;

		Utility::Math::Vector<float,3>	m_translate;
		Utility::Math::Vector<float,3>	m_scale;

		Utility::Math::Vector<float,4>	m_rotateAngleX,
										m_rotateAngleY,
										m_rotateAngleZ,

										m_orientAngleX,
										m_orientAngleY,
										m_orientAngleZ;
	};
}